package com.neu.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.neu.dao.ZhuCeDao;
import com.neu.daoimpl.ZhuCeDaoImpl;
import com.neu.entity.Users;

/**
 * Servlet implementation class ZhuCeServlet
 */
@WebServlet("/ZhuCeServlet")
public class ZhuCeServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ZhuCeServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see Servlet#init(ServletConfig)
	 */
	public void init(ServletConfig config) throws ServletException {
		// TODO Auto-generated method stub
	}

	/**
	 * @see Servlet#destroy()
	 */
	public void destroy() {
		// TODO Auto-generated method stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		/*
		 * 完成  响应   编码集的设定 
		 *   	就是在页面上显示出你的中文
		 */
		response.setContentType("text/html; charset=UTF-8");
		/*
		 * 把你的值输入在浏览器上面 (响应)
		 */
		PrintWriter out = response.getWriter();
		/*
		 * 完成    请求     对象中数据编码集的设定 ，
		 */
		request.setCharacterEncoding("utf-8");
		/*
		 * 获取页面标签所输入的值：
		 * 		就是把你登录或者注册时候写入的值在页面显示出来
		 *  传入的值就是你的页面 jsp 里面的 name属性的值
		 *       获取pass 一样的
		 */
		String name = request.getParameter("username");
		String pass = request.getParameter("pass");
		String role = request.getParameter("role");
		/*
		 * 你要输出多个数的话你就用
		 * 			getParameterValues():  方法
		 */
		String[] cbs = request.getParameterValues("cbs");
		/*
		 *  因为你的 cbs 是数组 你要输出数组里面的数
		 *  	所以你要用 foreach 来输出
		 *  或者用：
		 *  	out.println("test:"+cbs[0]) 也可以
		 */
		for(String value : cbs) {
			out.println("cbs："+cbs.toString());
		}
		/*
		 * 在页面上面打印出你的值：
		 * 	 和  PrintWriter out = response.getWriter();
		 * 对应
		 */
		out.println("username"+name+",pass"+pass+","+role);
		/*
		 *  实例化  ZhuCeDao 并调用 ZhuCeDao中的方法   ZhuCe
		 *  不能直接实例化接口 所以你的找接口的实现类 
		 *      因为 role 是 int 类型的   必须强转一下
		 *      int role_int = Integer.valueOf(role);
		 */
		ZhuCeDao zc = new ZhuCeDaoImpl();
		boolean flag = false;
		try {
			flag= zc.ZhuCe(new Users(0, name, pass, Integer.valueOf(role), cbs));
			/*
			 *  转发的方法 转发到注册页面
			 */
			if(flag) {
				/*
				 *  通过reques 对象获取 RequesDispatcher 对象，
				 *  	并通过该对象完成页面转发   成功了跳到 登录界面
				 */
				RequestDispatcher rdis = request.getRequestDispatcher("DengLu.jsp");
				/*
				 * 要通过 rdis 对象来实现转发
				 */
				rdis.forward(request, response);
			}else {
				RequestDispatcher rdis = request.getRequestDispatcher("ZhuCe.jsp");
				rdis.forward(request, response);
			}
		} catch (NumberFormatException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}
